import greenfoot.*;  // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)

/**
 * mi heroe principal  goku
 */
public class heroe extends Actor
{
   
    /**
     * inicializa el contador de imagenes en 6
     */
    private final static int IMAGE_COUNT= 6;
    private static GreenfootImage[] images;
    public heroe()
    {
     initializeImages();//inicializa en una imagen 
     setImage(images[0]);
    }
    public void act() 
    {
        setImage(images[0]);
        mueve();
        colisionene();
        colisionpoder();
        colisionobjeto();
        colisionpuerta();
        
    } 
    void mueve()
    {
        
       if (Greenfoot.isKeyDown("left"))
        {
            setLocation(getX()-5,getY());
            setImage(images[1]);
        }
        if (Greenfoot.isKeyDown("right"))
        {
            setLocation(getX()+5,getY());
            setImage(images[2]);
       }
        if (Greenfoot.isKeyDown("up"))
        {
            setLocation(getX(),getY()-5);
            setImage(images[5]);
       }
        if (Greenfoot.isKeyDown("down"))
        {
            setLocation(getX(),getY()+5);
            setImage(images[4]);
       }
    }
    /**
      *Checa si colisiono con algunos de los enemigos
     */
     public void colisionene()
    {
        space w = (space)getWorld();
        Actor aste = getOneIntersectingObject(asteroide.class);
        Actor ene = getOneIntersectingObject(m1.class);
        Actor ene2 = getOneIntersectingObject(m2.class);
        Actor ene3 = getOneIntersectingObject(m3.class);
        if (aste!=null)
        {
           getWorld().addObject( new Explosion(), getX(), getY() );
           w.loseLife();
           getWorld().removeObject(aste);
        }
       
    }
    
    /**
      *Checa si colisiono con algunos de los poderes
     */
    public void colisionpoder()
    {
        space w = (space)getWorld();
        Actor poder1 = getOneIntersectingObject(poder1.class);
        Actor poder2 = getOneIntersectingObject(poder2.class);
        Actor poder3 = getOneIntersectingObject(poder3.class);
        Actor poder4 = getOneIntersectingObject(poder4.class);
        if(poder1!=null)
        {
            getWorld().removeObject(poder1);
            w.pt1=1;
        }
        if(poder2!=null)
        {
            getWorld().removeObject(poder2);
           w.pt2=1; 
        }
        if(poder3!=null)
        {
            getWorld().removeObject(poder3);
            w.pt3=1;
        }
        if(poder4!=null)
        {
            getWorld().removeObject(poder4);
            w.lives++;
        }
    }
    /**
      *Checa si colisiono con algunos de los objetos
     */
    public void colisionobjeto()
    {
        space w = (space)getWorld();
        Actor objeto1 = getOneIntersectingObject(objeto1.class);
        Actor objeto2 = getOneIntersectingObject(objeto2.class);
        Actor objeto3 = getOneIntersectingObject(objeto3.class);
        if(objeto1!=null)
        {
            getWorld().removeObject(objeto1);
            w.cont++;
            
        }
        if(objeto2!=null)
        {
            getWorld().removeObject(objeto2);
            w.cont++;
        }
        if(objeto3!=null)
        {
            getWorld().removeObject(objeto3);
            w.cont++;
        }
    
    }
    /**
      *Checa si colisiono con la puerta
     */
    public void colisionpuerta()
    {
        space w = (space)getWorld();
        Actor puerta = getOneIntersectingObject(puerta.class);
        if(puerta!=null&&w.cont>=5)
        {
                //getWorld().removeObject(puerta);
                Greenfoot.playSound("pop.wav");
                w.cont=0;
                w.door=2;
        }
    }
    
    //inicializacion de el areglo de imagenes para la animacion del jugador
    public synchronized static void initializeImages() 
    {
        if(images == null) 
          {
            images = new GreenfootImage[IMAGE_COUNT];
            for (int i = 0; i < IMAGE_COUNT; i++)
            {
                if(i!=6)
            images[i] = new GreenfootImage("goku"+ (i+1) + ".png");
            
            }
          }
    }
}

